package com.xlh.wjdcserver.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.common.result.Result;
import com.property.dto.*;
import com.property.entity.Question;
import com.property.entity.Questionnaire;
import com.property.vo.QuestionnaireAnalysisVO;
import com.property.vo.QuestionnairePageVO;
import com.property.vo.QuestionnaireVO;
import com.xlh.wjdcserver.service.QuestionnaireService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Tag(name = "问卷管理")
@RestController
@RequestMapping("/questionnaire")
@Slf4j
public class QuestionnaireController {

    @Autowired
    private QuestionnaireService questionnaireService;

    @PostMapping("/addQuestionnaire")
    @Operation(summary = "添加问卷")
    public Result addQuestionnaire(@RequestBody QuestionnareDTO questionnareDTO) {


        questionnaireService.addQuestionnaire(questionnareDTO);

        return Result.ok();
    }

    @PostMapping("/updateQuestionnaire")
    @Operation(summary = "修改问卷")
    public Result updateQuestionnaire(@RequestBody Questionnaire questionnaire)
    {
        questionnaireService.updateQuestionnaire(questionnaire);
        return Result.ok();
    }

    @DeleteMapping("/deleteQuestionnaire")
    @Operation(summary = "删除问卷")
    public Result deleteQuestionnaire(@RequestBody List<QuestionnaireDelDTO> questionnaires)
    {
        questionnaireService.deleteQuestionnaire(questionnaires);
        return Result.ok();
    }

    @GetMapping("/questionnaireDetail")
    @Operation(summary = "分页查询问卷详情")
    public Result<Page<QuestionnairePageVO>> questionnaireDetail(QuestionPageDTO questionPageDTO)
    {
        return Result.ok(questionnaireService.questionnaireDetail(questionPageDTO));
    }
    @GetMapping("/listQuestionnaire")
    @Operation(summary = "分页查询问卷列表")
    public Result<Page<Questionnaire>> listQuestionnaire(QuestionPageDTO questionPageDTO)
    {
        return Result.ok(questionnaireService.listQuestionnaire(questionPageDTO));
    }

    @GetMapping("/queryByQTitle")
    @Operation(summary = "通过问卷标题查询问卷")
    public Result<Page<Questionnaire>> queryByQTitle(@RequestBody QuestionPageDTO questionPageDTO)
    {
        return Result.ok(questionnaireService.queryByQTitle(questionPageDTO));
    }

    @PostMapping("/asignQuestionnaire")
    @Operation(summary = "分发问卷")
    public Result asignQuestionnaire(@RequestBody QuestionnairePubDTO questionnairePubDTO)
    {
        questionnaireService.asignQuestionnaire(questionnairePubDTO);
        return Result.ok();
    }

    @GetMapping("/questionnaireAnalysis/{qid}")
    @Operation(summary = "问卷分析")
    public Result<List<QuestionnaireAnalysisVO>> questionnaireAnalysis(@PathVariable String qid)
    {
        return Result.ok(questionnaireService.questionnaireAnalysis(qid));
    }

    @GetMapping("/questionnaireStat")
    @Operation(summary = "问卷工作台数据统计")
    public Result<QuestionnaireVO> questionnaireStat()
    {
        return Result.ok(questionnaireService.questionnaireStat());
    }

}
